#ifndef CONFIG_H
#define CONFIG_H

#include "Common.h"
#include <Policies/Singleton.h>
#include "Platform/Define.h"

class ACE_Configuration_Heap;

class MANGOS_DLL_SPEC Config
{
    public:
							Config();
							~Config();

public:///
        bool				SetSource(const char *file);
		 std::string		GetFilename() const { return mFilename; }
        bool				Reload();

        std::string			GetStringDefault(const char* name, const char* def);
        bool				GetBoolDefault(const char* name, const bool def = false);
        int32				GetIntDefault(const char* name, const int32 def);
        float				GetFloatDefault(const char* name, const float def);

private:
        std::string			mFilename;
        ACE_Configuration_Heap *mConf;
};

#define sConfig MaNGOS::Singleton<Config>::Instance()

#endif
